Before an application program can first be used, it must typically be installed onto a computer system. The installation procedure generally involves copying executable and data files (the "program files") relating to the application program from a source location to an installed location on the computer. Typically, the source location is an installation disk or location on a network server accessible by the computer system. Often the program files are stored in a compressed format to conserve storage space.
Application programs use a variety of installation technologies to copy the program files from the source location to the computer system. InstallShield Software Corporation's InstallShield, Seagates' Winlnstall or Great Lakes Software's Wise Installation System are tools commonly used for generating application installation packages for Microsoft Corporation's Windows platforms. Web-based components such as ActiveX controls may use IExpress packages, which are self-extracting executables with a simple file copy and registry capability.
An application program will often include a special application program (the "set-up program") for administering and performing the installation procedure. Generally, the set-up program is unique to the application program and is customized to install the program files from a predetermined source location to pre-configured locations on the computer system. Often the user is provided the option of redirecting the installation of the program files to other locations on the computer system.
The typical set-up program not only installs the program files to the computer system but also creates entries in a central registration database, such as a system registration database (the "system registry"), which identify the locations of the program files on the computer system. The location may be identified by a "path" to a particular directory or folder of the computer system in which the program files reside. The system registry is typically maintained by the computer system's operating system. While executing, the application program generally queries the operating system for the path to an installed program file, the operating system looks up the path in the system registry, and the operating system returns the path to the executing application program.
This set-up program provides only a very rudimentary way for system administrators and users to know which applications they have installed on their machines and to manage these installed applications. The Microsoft Windows operating system contains an "Add/Remove Programs" control panel, and this control panel is driven by a standard set of registry entries. The Windows 95, Windows 98 and Windows NT 4.0 operating systems can uninstall an application program by invoking a command line provided by this registration information. Products such as Microsoft Systems Management Server can help manage installed applications in a centrally-managed environment. However, these products are limited by the information and control that individual application setup scripts choose to provide, and they do not facilitate source management for users who are in effect their own system administrators. A limitation of current installation technologies is that they look for the program files at a predetermined location. Current installation technologies will not perform satisfactorily if that location is not available. For example, users frequently install software over a network. The installer software will look for the needed program files at a predetermined location, usually a server. If the server goes down and then a user tries installing these program files from the network, the user will be unable to install the desired program files and is without recourse. Similarly, if the installer software expects to find the needed program files on removable media, and the removable media is not mounted when the installer application needs these program files, the installation will fail. Even something as simple as the expected program file having been inadvertently erased from the expected location will bring the software installation process to a halt.
Typically, the Add/Remove Program control panel is used to invoke "maintenance mode" setup for a product. For example, if the user decides that he now wants to install the Spell Check feature though he chose not to do so during the original install, the user goes to the Add/Remove control panel and re-runs the setup procedure to install the Spell Check feature. Depending on the user interface of the particular program, if the original installation source is no longer available, the application will either fail or will interrupt the installation process to prompt the user to manually locate a valid source. The user would either have to find a new source, or the install would fail. Even worse, some application programs do not have the capability to accept an alternate location even if one were provided manually.
When a user installs a product, he may select all of the product's features to run from the network. If the network goes down, the user is unable to use the product's features because the "run-from-source" features could run only from the network source. Users and administrators want a system by which the installer will go to a back-up location to get the needed modules if the network server goes down. This can be done via a distributed file system (DFS). A DFS keeps track of files stored across multiple networks. It converts file names into physical locations. However, everyone does not have access to a DFS, and even where a DFS is available, the administrator must manually re-map the file system before the installer application will look in an alternate location.
The problem of finding a valid source location for a computer program file can arise in a number of different situations, such as when the product is first installed, when the product is later patched, when an installed product is reconfigured, or when a product is configured to "run-from source." These situations will now be briefly described.
With the typical initial installation procedure the user will mount a CD or access a network share and click on the "install" executable. Finding a valid installation source is typically not much of an issue in this situation, since the user would not have been able to invoke the "install" executable if the installation source were not available. However, under certain circumstances it is possible to initiate an original install other than from an install executable at the source location, for example, from the Add/Remove control panel of the Microsoft Windows operating system. The installation software will look to a predetermined source location for the needed software code, and if the source location is not available, the installation will fail.
Subsequent to the original installation of the product, occasions may arise when the user needs to perform additional installation procedures. For example, the product may be patched after installation to correct a programming bug or other infirmity. Often during the course of patching the product, the original source may be required. Moreover, if the product has already been patched and a maintenance mode installation procedure occurs, the program files associated with the patch may be required. For example, a patch may provide patch bits to correct an existing program file that is being installed for the first time during a maintenance mode installation. If the patch is unavailable during the maintenance mode installation procedure, it is possible that the existing program file associated with the product may be newly installed without being patched, or not installed, putting the product in an unstable mode of operation.
Also, if the user originally did not install a spelling checker but subsequently decided this feature was needed, the user would need to install the feature. In the case of the Microsoft Windows operating system, the user can access the Add/Remove control panel to invoke "maintenance mode" setup for a product. The Add/Remove control panel looks to the source from which the original installation was performed. If the source from which the program was originally installed is unavailable, then the user either has to manually find a new source or the install will simply fail.
As an alternative to the Add/Remove control panel, certain applications may install software "on demand." "On demand" installation is really just an automated form of "maintenance mode" installation. When the user selects the spelling checker from, for example, the word processing application, and the selected feature had not previously been installed, the application can automatically install the requested feature. If the original installation source was not available at the time the "on demand" installation is attempted, an alternate source must be located or the installation will fail.
The need to find a valid source location can also arise in circumstances unrelated to installation. For example it is possible for a user to install a product from a network location and configure all of the features to run from the network, rather than having the features installed on the user's local hard drive. When the features are configured to "run from source" and the network then goes down, the features cannot run.
In all of these instances there is a need for a method and software product which will look for alternate source locations in the event that a primary source location is unavailable.